/**
 * <strong>Title : ResponsibilityTypeService.java<br>
 * </strong> <strong>Package : cn.b.sky.mes.qm.service<br>
 * </strong> <strong>Description : </strong>@类注释说明写在此处@<br>
 * <strong>Create on : 2015年12月10日 上午9:08:55<br>
 * </strong>
 * <p>
 * @author dapeng.li<br>
 * @version <strong>v1.0.0</strong><br>
 * <br>
 *          <strong>修改历史:</strong><br>
 *          修改人 | 修改日期 | 修改描述<br>
 *          -------------------------------------------<br>
 * <br>
 * <br>
 */
package cn.b.sky.mes.qm.service;

import java.util.List;

import cn.b.sky.common.model.BatchJobReport;
import cn.b.sky.mes.qm.model.DefectAttribute;
import cn.b.sky.mes.qm.model.DefectAttributeEnum;
import cn.b.sky.mes.qm.model.DefectAttributeValue;
import cn.b.sky.mes.qm.model.condition.DefectAttributeCondition;

/**
 * <strong>Title : DefectAttributeService.java<br></strong>
 * <strong>Package : cn.b.sky.mes.qm.service<br></strong>
 * <strong>Description : </strong>缺陷属性业务接口<br> 
 * <strong>Create on : 2015年12月10日 上午9:08:55<br></strong>
 * <p>
 * @author dapeng.li<br>
 * @version <strong>v1.0.0</strong><br>
 * <br>
 * <strong>修改历史:</strong><br>
 * 修改人 | 修改日期 | 修改描述<br>
 * -------------------------------------------<br>
 * <br>
 * <br>
 */
public interface DefectAttributeService {

  List<DefectAttribute> selectDefectAttributeListByCondition(DefectAttributeCondition condition);

  int selectDefectAttributeCountByCondition(DefectAttributeCondition condition);

  DefectAttribute getDefectAttribute(String siteCode, String defectAttributeCode);

  void insertDefectAttribute(DefectAttribute defectAttribute);

  void updateDefectAttribute(DefectAttribute defectAttribute);

  BatchJobReport deleteDefectAttribute(String sietCode, String defectAttributeCode);

  List<DefectAttributeEnum> selectDefectAttributeEnumList(String siteCode, String defectAttributeCode);

  /**
   * <strong>Title : selectDefectAttributeAndEnumByLockFlag<br></strong>
   * <strong>Description : </strong>根据锁定标志选择所有属性列表及枚举值<br> 
   * <strong>Create on : 2015年12月16日 下午4:02:39<br></strong>
   * <p>
   * @param siteCode
   * @param i
   * @return
   * List<DefectAttribute>
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<DefectAttribute> selectDefectAttributeAndEnumByLockFlag(String siteCode, Integer lockFlag);

  /**
   * 
   * <strong>Title : getDefectAttributeValuesForGraph<br></strong>
   * <strong>Description : </strong>缺陷信息页面查询缺陷属性值信息<br> 
   * <strong>Create on : 2015年12月31日 下午12:50:19<br></strong>
   * <p>
   * @param defectCode
   * @param siteCode
   * @return
   * List<DefectAttributeValue>
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<DefectAttributeValue> getDefectAttributeValuesForGraph(String defectCode, String siteCode);

  /**
   * <strong>Title : getAllDefectAttributeAndValue<br></strong>
   * <strong>Description : </strong>获得所有未锁定缺陷属性及属性值<br> 
   * <strong>Create on : 2015年12月31日 下午12:25:35<br></strong>
   * <p>
   * @param id
   * @param siteCode
   * @return
   * List<DefectAttributeValue>
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<DefectAttributeValue> getAllDefectAttributeAndValue(String id, String siteCode);

}
